package com.cjkj.equipment.mapper;

import com.cjkj.equipment.domain.MonitorPadData;
import com.cjkj.system.api.domain.request.EquipmentHDAReq;
import com.cjkj.system.api.domain.request.PatientEquipmentRTDReq;
import com.cjkj.system.api.domain.request.RecordsReq;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

/**
 * 睡眠监测垫数据Mapper接口
 * 
 * @author cjkj
 * @date 2024-08-30
 */
public interface MonitorPadDataMapper
{
    /**
     * 新增睡眠监测垫数据
     *
     * @param monitorPadData 睡眠监测垫数据
     * @return 结果
     */
    int insertMonitorPadData(MonitorPadData monitorPadData);

    MonitorPadData getLastByTimeRange(@Param("equipmentNo") String equipmentNo, @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    int insertOther(MonitorPadData monitorPadData);

    List<MonitorPadData> getEquipmentNodata25(@Param("equipmentNo") String equipmentNo,
                                              @Param("startTime") Date startTime);

    List<MonitorPadData> listDataByEquipment(RecordsReq req);

    /**
     * 小程序根据userId查询历史记录
     */
    List<MonitorPadData> appListData(EquipmentHDAReq req);

    /**
     * 小程序端查询患者就诊期间，设备的最新一条监测数据
     * @param param 参数
     * @return
     */
    MonitorPadData selectLastDataOnUse(PatientEquipmentRTDReq param);

    /**
     * 查询基础数据是否已经插入
     * @return
     */
    MonitorPadData getEquipmentNodatachushi(@Param("equipmentNo") String equipmentNo,
                                            @Param("startTime") Date startTime);
    /**
     * 插入基准数据
     */
    int insertchushi(@Param("equipmentNo") String equipmentNo,
                     @Param("acquisitionTime") Date acquisitionTime,
                     @Param("sleepStage") String sleepStage);

    MonitorPadData getLastTemp(@Param("equipmentNo") String equipmentNo, @Param("startTime") Date startTime, @Param("endTime") Date endTime);
    MonitorPadData getLastmonit(@Param("equipmentNo") String equipmentNo, @Param("startTime") Date startTime, @Param("endTime") Date endTime);

    /**
     * 查询区间数据
     */
    List<MonitorPadData> qjdata(@Param("equipmentNo") String equipmentNo,
                                @Param("startTime") Date startTime,
                                @Param("endTime") Date endTime);

    List<MonitorPadData> getEquipmentNo(@Param("startTime") Date startTime);

}
